/**
 * 推送
 */
import push from '@service.push'

export default class Push {
  constructor() {
    this.getProvider=push.getProvider()
    this.regId=null //注册ID
  }
  /** 
   * 初始化
  */
  init(){
    if(this.getProvider==''){
      console.log('不支持推送服务')
      return 
    }

  }
  /** 
   * 订阅push 后续可以收到 push 消息（一般可在应用初始化的地方进行调用。比如在 app 的 onCreate 方法中调用。）
  */
  subscribe(){
    let _this=this
    push.subscribe({
      success: function(data) {
        _this.regId=data.regId
        console.log(
          `push.subscribe succeeded, result data = ${JSON.stringify(data)}`
        )
      },
      fail: function(data, code) {
        console.log(
          `push.subscribe failed, result data = ${JSON.stringify(
            data
          )}, code = ${code}`
        )
      },
      complete: function() {
        console.log('push.subscribe completed')
      }
    })
  }
  /** 
   * 取消订阅（一般不建议调用，调用后 regId 失效，需要重新订阅获取新的 regId）
  */
  unsubscribe(){
    push.unsubscribe({
      success: function(data) {
        console.log(
          `push.unsubscribe succeeded, result data = ${JSON.stringify(data)}`
        )
      },
      fail: function(data, code) {
        console.log(
          `push.unsubscribe failed, result data = ${JSON.stringify(
            data
          )}, code = ${code}`
        )
      },
      complete: function() {
        console.log('push.unsubscribe completed')
      }
    })
  }
  /** 
   * 添加 push 事件回调（透传消息的 payload 内容可在此回调中收到）
  */
  on(){
    push.on({
      callback: function(ret) {
        console.log(`received pass through message, ret = ${JSON.stringify(ret)}`)
      }
    })
  }
}
